home *** CD-ROM | disk | FTP | other *** search
- var gBookmarksTree;
- var gExpander;
- var gSelectedFolder;
- var WSucks;
- var gMenulist;
- var prefs;
-
- function common_init()
- {
- gBookmarksTree = document.getElementById("folder-tree");
- gExpander = document.getElementById("expander");
- WSucks = parseInt(gBookmarksTree.getAttribute("height"));
- gMenulist = document.getElementById("select-menu");
- if (!WSucks)
- WSucks = 150;
-
- prefs = Components.classes["@mozilla.org/preferences-service;1"].getService(Components.interfaces.nsIPrefBranch);
- if(!prefs.getBoolPref("flock.favorites.loadPageInSidebar"))
- {
- $("webpanel").hidden = true;
- }
- var btfMenuItem = document.getElementById("btfMenuItem");
- btfMenuItem.id = BMSVC.getBookmarksToolbarFolder().Value;
- }
- function initMenulist() {
-
- if ("folderURI" in gArg && gArg.folderURI != '') {
- var folderItem = document.getElementById(gArg.folderURI);
- if (folderItem)
- {
- gMenulist.selectedItem = folderItem;
- $("createlocalcheck").checked = true
- }
- }
-
- gSelectedFolder = RDF.GetResource(gMenulist.selectedItem.id);
- }
-
- function showParentFolder(resource)
- {
- var coop = Components.classes['@flock.com/singleton;1'].getService(Components.interfaces.flockISingleton)
- .getSingleton('chrome://browser/content/flock/common/load-faves-coop.js')
- .wrappedJSObject;
-
- var coopObj = BookmarksUtils.getflockUtilsObject().BookmarksShareUtils
- .getCoopObject(BMDS, resource);
- var obj = coopObj.getParent();
- var parents = coopObj.getParents();
- for (var i=0; i<parents.length; i++)
- {
- if (!(parents[i] instanceof coop.Folder))
- continue;
- obj = findBookmarksImmediateRoot(parents[i], parents[i]);
- if( obj != null)
- {
- break;
- }
-
- }
- if(obj)
- {
- document.getElementById('createlocalcheck').checked = true;
- selectMenuItem(RDF.GetResource(obj.id()));
- }
- }
-
- function findBookmarksImmediateRoot(currentRoot, parent)
- {
- if(parent == null)
- {
- return null;
- }else if(parent.id() == 'http://flock.com/rdf#OnlineFolder')
- {
- return null;
- }
- else if( parent.id() == 'http://flock.com/rdf#BookmarksRoot')
- {
- return currentRoot;
- }else
-
- return findBookmarksImmediateRoot(currentRoot, parent.getParent())
- }
- function expandTree()
- {
- setFolderTreeHeight();
- var willCollapse = !gBookmarksTree.collapsed;
- gExpander.setAttribute("class",willCollapse?"down":"up");
- gExpander.setAttribute("tooltiptext", gExpander.getAttribute("tooltiptext"+(willCollapse?"down":"up")));
- if (willCollapse) {
- document.documentElement.buttons = "accept,cancel";
- document.getElementById('newFolderArea').hidden = true;
- WSucks = gBookmarksTree.boxObject.height + document.getElementById('newFolderArea').height;
- } else {
- document.getElementById('newFolderArea').hidden = false;
- // always open the bookmark root folder
- if (!gBookmarksTree.treeBoxObject.view.isContainerOpen(0))
- gBookmarksTree.treeBoxObject.view.toggleOpenState(0);
- selectFolder(gSelectedFolder);
- gBookmarksTree.focus();
- }
- gBookmarksTree.collapsed = willCollapse;
- resizeTo(window.outerWidth, window.outerHeight+(willCollapse?-WSucks:+WSucks+20));
- }
-
- function setFolderTreeHeight()
- {
- var isCollapsed = gBookmarksTree.collapsed;
- if (!isCollapsed)
- gBookmarksTree.setAttribute("height", gBookmarksTree.boxObject.height);
- }
-
- function selectMenulistFolder(aEvent)
- {
-
- gSelectedFolder = RDF.GetResource(aEvent.target.id);
- if (!gBookmarksTree.collapsed)
- selectFolder(gSelectedFolder);
- }
- function selectFolder(aFolder)
- {
- gBookmarksTree.treeBoxObject.view.selection.selectEventsSuppressed = true;
- gBookmarksTree.treeBoxObject.view.selection.clearSelection();
- gBookmarksTree.selectResource(aFolder);
- var index = gBookmarksTree.currentIndex;
- gBookmarksTree.treeBoxObject.ensureRowIsVisible(index);
- gBookmarksTree.treeBoxObject.view.selection.selectEventsSuppressed = false;
- // triggers a select event that will provoke a call to selectTreeFolder()
- }
-
- function selectTreeFolder()
- {
- // If no item is selected, we obviously can't do anything with the selection.
- // This happens when the bookmarks tree rebuilds, since the rebuild starts
- // by removing all items from the tree, including the currently selected item,
- // and removing the selection also triggers the "select" handler which calls
- // this function.
- if (gBookmarksTree.currentIndex == -1)
- return
-
- var resource = gBookmarksTree.currentResource;
- if (resource == gSelectedFolder)
- return;
- selectMenuItem(resource);
- }
- function selectMenuItem(resource)
- {
- gSelectedFolder = resource;
- var menuitem = document.getElementById(gSelectedFolder.Value);
- if(gSelectedFolder.Value == 'http://flock.com/rdf#BookmarksRoot')
- {
- gMenulist.selectedIndex = 0;
- return;
- }else
- {
- gMenulist.selectedItem = menuitem;
- }
- if (!menuitem) {
- gMenulist.removeItemAt(gMenulist.firstChild.childNodes.length-1);
- var newItem = gMenulist.appendItem(BookmarksUtils.getProperty(gSelectedFolder, gNC_NS+"Name"), gSelectedFolder.Value);
- newItem.setAttribute("class", "menuitem-iconic folder-icon");
- newItem.setAttribute("id", gSelectedFolder.Value);
- gMenulist.selectedItem = newItem;
- }
- }
- function newFolder()
- {
- gBookmarksTree.focus();
- // we should use goDoCommand, but the current way of inserting
- // resources do not insert in folders.
- //goDoCommand("cmd_bm_newfolder");
- var target = BookmarksUtils.getTargetFromFolder(gSelectedFolder);
- var folder = BookmarksCommand.createNewFolder(target);
- if (!BMSVC.isBookmarkedResource(folder))
- return; // new folder cancelled
- selectFolder(folder);
- }
-
- function setDoEverytime()
- {
- if ($('publishLocations').checked ) {
- if(document.getElementById("shareArea").getAttribute("hidden") != "true")
- {
- saveShareSettings($('bmServices-box'));
- }
- prefs.setBoolPref("flock.favorites.do.local", $("createlocalcheck").checked);
- if($("createlocalcheck").checked)
- {
- prefs.setCharPref("flock.favorites.do.folder", $("select-menu").selectedItem.id);
- }
- }
- }
-
- function loadDoEverytime()
- {
- var local = prefs.getBoolPref("flock.favorites.do.local");
-
- if(!loadShareSettings())
- {
- $("createlocalcheck").setAttribute('checked', true);
- }
- if(local)
- {
- $("createlocalcheck").setAttribute('checked', true);
- var folder = prefs.getCharPref("flock.favorites.do.folder");
- if(folder && folder != '')
- {
- selectMenuItem(RDF.GetResource(folder));
- }
- }
- }
-
- function initOnlineFavoritesObservor()
- {
- var rdfService = Components.classes[kRDFContractID].getService(kRDFSVCIID);
- var accountsDS = rdfService.GetDataSource("rdf:flock-favorites");
- accountsDS.AddObserver(onlineFavoritesObserver);
- toggleOnlineArea();
- }
- function uninitOnlineFavoritesObservor()
- {
- var rdfService = Components.classes[kRDFContractID].getService(kRDFSVCIID);
- var accountsDS = rdfService.GetDataSource("rdf:flock-favorites");
- accountsDS.RemoveObserver(onlineFavoritesObserver);
- }
- /* Online Sidebar and Favorites Toggle for decks */
- var onlineFavoritesObserver = {
- /*
- Observer for the AccountsRoot rdf
- */
- onAssert : function(ds, source, predicate, target){
- if (predicate.Value == "http://flock.com/rdf#isTransient") {
- toggleOnlineArea();
- }
- },
- onUnassert : function(ds, source, predicate, target){
- if (source.Value == "http://flock.com/rdf#AccountsRoot") {
- toggleOnlineArea();
- }
- },
- onChange : function(ds, source, predicate, oldTarget, newTarget){
- if ((predicate.Value == "http://flock.com/rdf#isAuthenticated") ||
- (predicate.Value == "http://flock.com/rdf#isTransient") ) {
- toggleOnlineArea();
- }
- },
- onMove : function(ds, oldSource, newSource, predicate, target){},
- onBeginUpdateBatch : function(ds){},
- onEndUpdateBatch : function(ds){},
- }
-
- function toggleOnlineArea()
- {
- var acUtils = Components.classes["@flock.com/account-utils;1"]
- .getService(Components.interfaces.flockIAccountUtils);
- var accounts = acUtils.getAccountsByInterface("flockIBookmarkWebService");
- if(accounts.hasMoreElements())
- {
- document.getElementById('onlineBookmarksDeck').setAttribute("selectedIndex","0");
- }else
- {
- document.getElementById('onlineBookmarksDeck').setAttribute("selectedIndex","1");
- }
- }
-